1
プラットフォーム依存コードを超えて
AI013Lesson 8
00:00

歴史的に、C++にはハードウェアサービスと統合的にやり取りする方法がなく、開発者を 「プラットフォームの孤島」 OS固有のAPI(例:Win32やPOSIX)によってコードベースが分割される状況に追い込まれていました。このスライドは、C++標準ライブラリが普遍的な抽象化層として機能する現代の時代への移行を示しています。

1. #ifdefスパゲッティの終焉

標準化以前は、スレッドの生成やディレクトリのナビゲーションといった簡単なタスクでも、異なるシステムヘッダ(例: <windows.h> 対比して <pthread.h>)を処理するためにプリプロセッサマクロが必要でした。これにより、肥大化し、保守不能なコードが生まれました。

2. C++11のパラダイムシフト

標準はシステムリソースに対するコントロールを取り戻し始めました。特に、 C++11は、std::thread、std::mutex、std::futureを含む高レベルな並列処理機能を追加しましたこれにより、言語とCPUとの関係性が標準化されました。

旧来の(分断された)#ifdef _WIN32CreateThread(...);#elsepthread_create(...);#endif現代的(標準化された)std::thread t(task);

3. ベンダー依存ロジックの分離

プラットフォーム固有のコードから脱却することで、標準ライブラリは「一度書けば、どこでもコンパイル可能」という保証を提供します。プラットフォームのメンテナンス負担は開発者からコンパイラベンダーへと移ります。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>